package com.sky.orangehireserver.modules.admin.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;

/**
 * 企业创建请求DTO
 * 
 * @author sky
 */
@Data
@Schema(description = "企业创建请求DTO")
public class OrganizationCreateDTO {

    /**
     * 企业/组织名称
     */
    @NotBlank(message = "企业名称不能为空")
    @Size(max = 100, message = "企业名称长度不能超过100个字符")
    @Schema(description = "企业名称", example = "阿里巴巴集团")
    private String name;

    /**
     * 企业简称
     */
    @Size(max = 50, message = "企业简称长度不能超过50个字符")
    @Schema(description = "企业简称", example = "阿里")
    private String shortName;

    /**
     * 行业分类
     */
    @Size(max = 50, message = "行业分类长度不能超过50个字符")
    @Schema(description = "行业分类", example = "互联网")
    private String industry;

    /**
     * 企业规模
     */
    @Pattern(regexp = "^(1-50人|51-200人|201-500人|500\\+)$", message = "企业规模格式不正确")
    @Schema(description = "企业规模", example = "500+", allowableValues = {"1-50人", "51-200人", "201-500人", "500+"})
    private String size;

    /**
     * 企业Logo URL
     */
    @Size(max = 500, message = "Logo URL长度不能超过500个字符")
    @Schema(description = "企业Logo URL")
    private String logoUrl;

    /**
     * 企业官网
     */
    @Size(max = 200, message = "企业官网长度不能超过200个字符")
    @Schema(description = "企业官网", example = "https://www.alibaba.com")
    private String website;

    /**
     * 企业注册地址
     */
    @Size(max = 500, message = "企业地址长度不能超过500个字符")
    @Schema(description = "企业注册地址", example = "浙江省杭州市余杭区")
    private String address;

    /**
     * 联系人姓名
     */
    @NotBlank(message = "联系人姓名不能为空")
    @Size(max = 50, message = "联系人姓名长度不能超过50个字符")
    @Schema(description = "联系人姓名", example = "张三")
    private String contactName;

    /**
     * 联系人邮箱
     */
    @NotBlank(message = "联系人邮箱不能为空")
    @Email(message = "联系人邮箱格式不正确")
    @Size(max = 100, message = "联系人邮箱长度不能超过100个字符")
    @Schema(description = "联系人邮箱", example = "zhangsan@alibaba.com")
    private String contactEmail;

    /**
     * 联系人电话
     */
    @Pattern(regexp = "^1[3-9]\\d{9}$", message = "联系人电话格式不正确")
    @Schema(description = "联系人电话", example = "13800138000")
    private String contactPhone;

    /**
     * 企业简介
     */
    @Size(max = 1000, message = "企业简介长度不能超过1000个字符")
    @Schema(description = "企业简介")
    private String description;
}